/**
 * str = "A0000B000" k=3
 * ===> A0000b
 * 
 * str = "A0B000D" k=1
 * ===> AB000D
 * 
 * 和字符串求和很类似
 */
/*
let res = removeKZeros("A0000B000",4);
console.log(res);
 function removeKZeros(str,k){
     if(str===null||k<1){
         return;
     }
     let 
        count = 0,// 当前连续段出现的0个数
        start = -1;// 默认的0连续段的开始值(即还没0
    必须将str转换为数组。因为无法通过str[i]=xxx的方式给字符串赋值
    修改字符串除了找到该位字符，取得左右两数组，再重新连接外
    更普遍的做法是正则表达式的replace 
     str = str.split('');
    // 遍历str。判断当前是否为'0'
    for(let i=0;i<str.length;i++){
        if(str[i]==='0'){
            // 判断是否为第一次遇到0，如果是则更新start
            // 否则保留
            start = start===-1?i:start;
            count++;
        }else{
            if(count===k){
                while(count-->0){
                   str[start++]="";
                }
            }
            count = 0;
            start  = -1;
        }
    }
    // 避免最后一段出现非字符串包裹的0段
    if(count===k){
        while(count-->0){
            str[start++]="";
        }
    }
    return str.join("");
 }

 */


 // 该题使用正则十分的简单
 // 全局匹配
 // string.replace(new RegExp(str,'g'),"0000");

let res = removeKZeros("A0000B000",4);
console.log(res);
function removeKZeros(str,k){
    let key = new Array(k).fill(0).join("");
    let reg = `/${key}/g`;// 替换变量 全局
    return str.replace(eval(reg),"");
}   
